La base de un sistema flexible radica en definir un contrato interno rígido contrato o interfaz que los objetos deben seguir. En este contexto, definimos una interfaz de tabla donde cada objeto celda garantiza la existencia de tres métodos específicos: minAncho(), , minAlto(), y dibujar(ancho, alto).
1. El contrato de interfaz
Al estandarizar estos métodos, la lógica de diseño puede calcular las dimensiones globales de filas y columnas sin conocer los tipos de datos internos de las celdas individuales. Este es un ejemplo clásico de Polimorfismo basado en interfaces.
2. Implementación de TextCell
El TextCell el constructor prepara la entrada cruda dividiendo cadenas en arreglos por línea. Esto desplaza la complejidad desde la fase de renderizado hasta la fase de instanciación.
3. Dibujo determinista
El dibujar(ancho, alto) método garantiza que cada salida de celda esté perfectamente rellenada usando una función auxiliar repetir() ayudante. Esto mantiene el alineamiento vertical y horizontal independientemente de la longitud del contenido.
$$\text{Relleno} = \text{Ancho} - \text{largo de línea}$$